axios.defaults.baseURL = "http://localhost:8080/"//配置请求根路径
Vue.prototype.$http = axios

//1 使用axios前置拦截器，让所有的请求都携带uToken
axios.interceptors.request.use(config=>{
    //从localstorage中获取token
    let token =  localStorage.getItem("token");
    //判断有无token，有就添加到请求头中
    if(token){
        config.headers['U-TOKEN']=token;
    }
    return config;
},error => {
    Promise.reject(error);
})

//2 使用axios后置拦截器，处理没有登录请求
axios.interceptors.response.use(result=>{
    console.log(result.data)
    let data = result.data;
    if(!data.success && data.message==="noLogin")
        location.href = "login.html"
    return result;
},error => {
    Promise.reject(error);
})

//3、手搓路由拦截器
let url = location.href
//请求的是登录页或者注册页
if(url.indexOf("/login.html") > -1 || url.indexOf("/register.html") > -1){
    localStorage.removeItem("token")
    localStorage.removeItem("logininfo")
}

if(url.indexOf("/login.html") === -1 &&
    url.indexOf("/register.html") === -1 &&
    url.indexOf("/index.html") === -1 &&
    url.indexOf("/callback.html") === -1 &&
    url.indexOf("/binder.html") === -1){
    let token = localStorage.getItem("token")
    if(!token){
        location.href = "login.html"
    }
}


function parseUrlParams2Obj(url) {
    // 通过 ? 分割获取后面的参数字符串
    let urlStr = url.split('?')[1]
    // 创建空对象存储参数
    let obj = {};
    // 再通过 & 将每一个参数单独分割出来
    let paramsArr = urlStr.split('&')
    for(let i = 0,len = paramsArr.length;i < len;i++){
        // 再通过 = 将每一个参数分割为 key:value 的形式
        let arr = paramsArr[i].split('=')
        obj[arr[0]] = arr[1];
    }
    return obj
}